x86/hvm: Crash domain rather than guest on unexpected PIO IO state
authorGeorge Dunlap <george.dunlap@eu.citrix.com>
Wed, 15 Jun 2011 15:05:14 +0000 (16:05 +0100)
committerGeorge Dunlap <george.dunlap@eu.citrix.com>
Wed, 15 Jun 2011 15:05:14 +0000 (16:05 +0100)
commitef99df4b11c2f924c46e06ad541b3410e0f4ab7b
tree4009338ba3152268f82e2c58f1c6f0f667b4eea0
parente06b727ba1a868e689061cc842ebe122b76fd32d
x86/hvm: Crash domain rather than guest on unexpected PIO IO state

Under certain conditions, if an IO gets into an unexpected state,
hvmemul_do_io can return X86EMUL_UNHANDLEABLE.  Unfortunately,
handle_pio() does not expect this state, and calls BUG() if it sees
it, crashing the host.

Other HVM io-related code crashes the guest in this case.  This patch
makes handle_pio() do the same.

The crash was seen when executing crash_guest in dom0 to forcibly
crash the guest.

Signed-off-by: George Dunlap <george.dunlap@eu.citrix.com>
xen/arch/x86/hvm/io.c